#!/bin/sh
#
# Slackware build script for Gitless
#
# Copyright (C) 2023-2024  Ricardo García Jiménez <ricardogj08@riseup.net>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <https://www.gnu.org/licenses/>.
#

PRGNAM=gitless
VERSION=${VERSION:-git}
SOURCE="https://github.com/goldstar611/${PRGNAM}.${VERSION}"
BUILD=${BUILD:-1}
TAG=${TAG:-_rgj}
PKGTYPE=${PKGTYPE:-tgz}

if [ -z "${ARCH}" ]; then
  case "$(uname -m)" in
    i?86) ARCH=i586 ;;
    arm*) ARCH=arm ;;
    *) ARCH=$(uname -m) ;;
  esac
fi

CWD=$(pwd)
TMP=${TMP:-/tmp/build}
PKG="${TMP}/package-${PRGNAM}"
OUTPUT=${OUTPUT:-/tmp}

set -e
rm -rf "${PKG}"
mkdir -p "${TMP}" "${PKG}" "${OUTPUT}"
cd "${TMP}"
rm -rf "${PRGNAM}"
git clone "${SOURCE}"
cd "${PRGNAM}"
chown -R root:root .
find -L . \
 \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
  -o -perm 511 \) -exec chmod 755 {} \; -o \
 \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
  -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;

python3 setup.py build
python3 setup.py install \
  --prefix=/usr \
  --root="${PKG}" \
  --optimize=1 \
  --skip-build

find "${PKG}" -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \
  | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true

mkdir -p "${PKG}/usr/doc/${PRGNAM}-${VERSION}"
cp -a \
  LICENSE.md README.md requirements.txt \
   "${PKG}/usr/doc/${PRGNAM}-${VERSION}"
cat "${CWD}/${PRGNAM}.SlackBuild" > "${PKG}/usr/doc/${PRGNAM}-${VERSION}/${PRGNAM}.SlackBuild"

mkdir -p "${PKG}/install"
cat "${CWD}/slack-desc" > "${PKG}/install/slack-desc"

cd "${PKG}"
/sbin/makepkg -l y -c n "${OUTPUT}/${PRGNAM}-${VERSION}-${ARCH}-${BUILD}${TAG}.${PKGTYPE}"
